Description languages for specifying data formats and the methods needed for processing the data are known in the prior art. One known description language is “Extensible Markup Language”, XML for short, which is used to describe hierarchically structured data in text form or “plain text”. The description language XML is used for platform-independent interchange of data between computer systems. Owing to the textual nature of XML, the language may be read both by machines and by human beings. In addition, schemata are known that are used to describe a structure and to define data types. A schema for use for XML data is also known as an XML schema definition or XSD.
Efficient data interchange between computer systems is frequently necessary that cannot be achieved using a textual description language such as XML. Therefore, binary representations of XML have been proposed. A binary representation of XML referred to as “Efficient XML Interchange”, EXI for short, is faster to process in comparison with text-based XML data and requires less transmission bandwidth for the data interchange between computer systems. Use of EXI is, moreover, not restricted solely to a binary representation of XML; EXI may be used as an interchange format for transmitting any semi-structured data.
The interchange format EXI particularly exhibits advantages when used in XML-based applications using a microcontroller having a limited supply of memory space and computation power. Devices that operate on the basis of microcontrollers, (for example, intelligent sensors on a production line or in a vehicle), may be set up for device-internal processing of data in a binary format and interchange these data with one another via appropriate communication interfaces, also, e.g., on the basis of binary data. In particular, binary data in accordance with EXI specifications allow inter-operability with XML-based systems in this case.
For the interchange format EXI too, use of schemata, (e.g., XML schema files), is advantageous. Use of schemata permits typed presentation of data being interchanged, also known as “typed data” among experts, which permits faster conversion of data into an internal representation at a receiver end. In addition, this measure permits an even more compact presentation, because knowledge already known at the receiver end, (such as, e.g., XML element names), may be transmitted no longer in a text format but rather by bilaterally known, short identifiers.
To further optimize a binary data stream that is to be transmitted in accordance with EXI, there is provision for schemata to be coded in grammars, also known as EXI grammars. In addition, a grammar also permits a coded representation or declaration of namespaces. For reasons of simplicity, the term “schemata” below covers both schemata in the sense of the preceding description and namespaces.
Coding of schemata in grammars is time-consuming and work-intensive. A further problem arises from the fact that currently established methods for converting and/or transmitting a binary EXI data stream frequently provide for multiple schemata to be used. In such cases, a combination of multiple schemata or schema files is required in order to code a grammar. In many such instances of application, the process is then unnecessarily performed repeatedly when multiple EXI data streams require like or similar combinations of schemata.
In one frequently arising case, according to which one schema from a multiplicity of schemata is subject to a change, the process of coding a grammar from the multiplicity of schemata, including unaltered schemata, needs to be repeated.
Several different combinations of schemata result in one grammar per combination each time. A technical need to keep grammars ready for different combinations of schemata on a persistent basis may currently be satisfied only by virtue of many variants of grammars being generated in advance. With an increasing number of schemata, the number of variants rises to an extreme degree on account of the great combinational diversity of possible combinations, which means that the memory space requirement for storing the grammars is accordingly high.